|
Ziel der Arbeit war es, einen Compiler für die Programmiersprache
Eiffel zu entwickeln. Als Zielcode wird direkt SPARC-Maschinencode
erzeugt, so dass eine bei bisherigen Eiffel-Implementierungen
nötige C-Compilation wegfällt. So wird auch die Erzeugung
effizienten Maschinencodes für Besonderheiten der Sprache Eiffel
moeglich, wie dynamisch gebundene Aufrufe und die effiziente
Implementierung eines Garbage-Collectors.
Der Compiler selbst sollte bei konsequenter Verwendung von
objektorientierten Techniken entwickelt werden. Die Beschreibung des
objektorientierten Aufbaus des Compilers nimmt daher auch einen
großen Teil der Ausarbeitung ein.
Eiffel besitzt eine Reihe an leistungsstarken Konstrukten, wie die
flexible Mehrfachvererbung und Generizität, deren effiziente
Implementierung eine gute Wahl der im Zielcode benutzten Strukturen
verlangt. Diesen Strukturen wurde daher ein wichtiger Teil dieser
Arbeit gewidmet.
Schließlich ist die Speicherverwaltung durch einen
Garbage-Collector in Eiffel unerlässlich. Auch wenn er im Rahmen
dieser Arbeit nicht implementiert werden konnte, so befasst sich
doch ein eigenes Kapitel ausführlich mit der detaillierten
Beschreibung einer effizienten Implementierung der
Speicherverwaltung.
|